home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / DUNESRC.ZIP / SCALE.ASM < prev   
Assembly Source File  |  1996-07-03  |  2KB  |  119 lines

  1. .386
  2. jumps
  3.  
  4. Data Segment Word Use16
  5. Extrn XArray : Word : 320
  6. Extrn YArray : Word : 200
  7. Data EndS
  8.  
  9. Code Segment DWord Use16
  10.  
  11. Assume CS: Code, DS: Data
  12.  
  13. Public ScaleUp,Fire,CopyDW,Dot
  14.  
  15. ScaleUp proc pascal near
  16. arg source:word,dest:word
  17.   mov gs,source
  18.   mov es,dest
  19. ; xor di,di
  20.   mov di,30*320
  21. ; mov dl,200
  22.   mov dl,140
  23.   xor ecx,ecx
  24.   mov cx,offset YArray
  25.   add cx,30*4
  26.     l1:
  27.     mov dh,160
  28.     mov si,offset XArray
  29.       l2:
  30.       mov ebx,dword ptr ds:[ecx]
  31.       add ebx,dword ptr ds:[si]
  32.       mov al,byte ptr gs:[bx]
  33.       shr ebx,16
  34.       mov ah,byte ptr gs:[bx]
  35.       stosw
  36.       add si,4
  37.       dec dh
  38.       jnz l2
  39.     add cx,4
  40.     dec dl
  41.     jnz l1
  42.   ret
  43. ScaleUp endp
  44.  
  45. Fire proc pascal near
  46. arg dest:word
  47.   mov es,dest
  48.   mov di,30*320+1
  49.   mov cx,320*140-1
  50.     fl1:
  51.     xor bx,bx
  52.     mov bl,byte ptr es:[di]
  53.     mov ax,bx
  54.     mov bl,byte ptr es:[di-1]
  55.     add ax,bx
  56.     mov bl,byte ptr es:[di+1]
  57.     add ax,bx
  58.     mov bl,byte ptr es:[di+320]
  59.     add ax,bx
  60.     shr ax,2
  61.     jz fl2
  62.     dec al
  63.     fl2:
  64.     stosb
  65.     dec cx
  66.   jnz fl1
  67.   ret
  68. Fire endp
  69.  
  70. CopyDW proc pascal near
  71. arg source:word, dest:word
  72.   push ds
  73.   mov ds,source
  74.   mov es,dest
  75.   mov si,30*320
  76.   mov di,si
  77.   mov cx,140*80
  78.   rep movsd
  79.   pop ds
  80.   ret
  81. CopyDW endp
  82.  
  83. Dot proc pascal near
  84. arg x:word, y:word, dest:word, color:byte
  85.   mov es,dest
  86.   mov ax,y
  87.   mov bx,320
  88.   mul bx
  89.   mov di,ax
  90.   add di,x
  91.   mov al,color
  92.   mov ah,color
  93.   shl eax,16
  94.   mov al,color
  95.   mov ah,color
  96.   stosd 
  97.   stosd 
  98.   add di,312
  99.   stosd 
  100.   stosd   
  101.   add di,312
  102.   stosd   
  103.   stosd 
  104.   add di,312
  105.   stosd   
  106.   stosd 
  107.   add di,312
  108.   stosd   
  109.   stosd 
  110.   add di,312
  111.   stosd   
  112.   stosd 
  113.   ret
  114. Dot endp
  115.  
  116. code ends
  117.  
  118. end
  119.